http://www.WizBrother.com/
//没登陆

欢迎您来到凯恩之角,奈非天!

帖子:583

符文:15

跳转到指定楼层
1#
发表于 2023-5-8 10:45:00|只看该作者|倒序浏览 来自:江苏
本帖最后由 jzjxkzf 于 2023-5-12 10:56 编辑

开头感谢大佬”翀的肯定“,解答了很多问题,没有大佬就没有这篇文章

D2R2.7更新内容很少,新NHD机制也挺好接受,然而对多个技能进行测试后却发现一些新东西,特发此文和大家探讨,欢迎指正。

首先举几个经常发生但容易被忽视的例子:

a/标马玩家可能听说过闪电烈怒有个BUG被称为LC BUG,具体是指在密集分布的怪物中释放闪电烈怒,同一闪电可能会对同一个怪物造成多次伤害。

b/法师的直闪也有类似BUG,并且比a容易发现:对紧挨着的三五只群怪释放直闪,一次闪电可能会对同一个怪造成两次伤害。如果该法师中了缓速箭,一道直闪甚至会对同一个怪造成四次伤害!

c/经常有人说暴风雪的一个雪球同时砸到2个怪物时伤害好像更高。(实测一个雪球能对同一个怪造成4倍面板伤害)

这几个现象都可以被称为LC BUG,为了更好地解释这个BUG,首先需要介绍一个概念:

一/投射物size

D2R里衡量怪物模型大小size,沙虫/蝮蛇/牛头等怪物为size3,人物/佣兵及大部分怪size2,飞刀等少量怪size1

而投射物也有size,而闪电就是size2,这里看似不起眼,其实挺重要。


二/碰撞检测

类似火球/冰弹这种击中就消失的投射物(CollideKill=1)检测机制很好理解,但闪电/新星/龙卷风等这种能穿透目标的投射物碰撞机制是什么?是不是对同一个怪只发生一次碰撞(造成一次伤害)?由NHD机制反推,这种推测当然不对。

或者穿透怪物这段过程中的每一帧都进行碰撞检测(随后造成伤害)?这个推测不符合直观印象,又似乎和某些rate伤害有点像?

经过测试,这个推测是正确的:单体投射物在穿透怪物的过程中每一帧都进行碰撞检测。

那么有些疑问就随之而来:明明一道直闪对单个怪物只造成一次伤害啊!难道直闪穿透size1怪物和size3怪物都只用时1帧吗?其他投射物飞行速度和直闪不同难道也只用时1帧?

为了解答这些疑惑需要介绍D2R中一个名为“上一次碰撞”(Last Collide)的机制


三/上一次碰撞(Last Collide)

这个机制很好理解,顾名思义:投射物在与目标进行碰撞时会检测是否为上一次被撞目标,如果是那么系统自动取消这次碰撞。

因此单次直闪在大多数情况下对同一个怪只造成一次伤害。

但如果有两只size3怪物紧挨在一起,size2直闪以某些角度穿透两只怪物a/b,那么Last Collide检测将在这ab间交替进行,导致单次闪电对同一个怪能够造成两次伤害(直闪无NHD)。

由于这个机制设计目的是为了避免单体投射物对同一个怪物造成多次伤害,但实际多次伤害却时常发生,所以这个可以用机制来解释的现象一般还是被称为LC bug

具体细节如下:闪电第一帧碰撞到怪物a,碰撞检测通过,对a造成一次闪电伤害;第二F同时碰撞到怪物ab,但对a的碰撞检测未能通过(a为上一次碰撞目标,系统自动取消这次碰撞),对b的碰撞检测通过,对b造成一次闪电伤害;第三F同时碰撞到怪物ab,但对b的碰撞检测未能通过(b为上一次碰撞目标,系统自动取消这次碰撞),对a的碰撞检测通过,对a造成一次闪电伤害;第四F同时碰撞到怪物ab,但对a的碰撞检测未能通过(a为上一次碰撞目标,系统自动取消这次碰撞),对b的碰撞检测通过,对b造成一次闪电伤害;之后循环不再重复。


测试后有如下发现:

1.闪电本体是个size2投射物,显示的长条闪电只是动画效果;

2.闪电穿透两个size2怪物也可以对某只怪造成两次伤害,对穿透角度有一定要求;

3.size2闪电穿透size2目标一般用时4帧,不同角度也可能是3帧;

4.如果闪电飞行速度减少(中缓速箭等),可以打出更多次伤害;

5.三个或更多怪物站位合适,一道闪电可能对某只怪造成3次伤害;

PVP测试较为简便:找个+1直闪杖,无任何加成时1级闪电1-40电伤;两人组紧凑站位,不带电吸/mdr/风甲/es/电抗等;考虑PVP惩罚1次直闪最多打7点血,如果两人中任意一人掉血超过7,那么可以确定直闪对其造成两次伤害。


四/NHD

从上文可以发现LC机制主要是用来限制单体投射物,但对单次释放多弹头投射物(比如新星)很难有多少限制力,暴雪对此设计了NHD机制。关于NHD论坛已经有很多精彩的帖子讨论,这里不再赘述。


以上内容可以解释不少现象,比如之前提到的单发闪电多次伤害问题;暴风雪的一片雪花同时砸到2个怪物伤害显得更高;遭遇BUG蛇时人物和pets站一起掉血更快;纯招TP落地不怕电鬼齐射但锤丁却可能秒躺。

最后这个现象就是PVP玩家熟知的Sum bug,一般的解释是,TP落地人物pets模型重叠,远程投射物攻击顺序依次为佣兵/召唤物/人物,pets帮人物挡住了闪电齐射,人物不受伤害,如果受伤那一定是近战伤害!

这种解释对吗?好像并不符合法师带米山乱飞各种被电鬼制裁的实战经历?

想要真正理解Sumbug必须运用LC机制,详解如下:

某nec带一群size2小弟TP落地遭遇电鬼齐射(为简化讨论假设只有一道闪电),因为TP落地模型重叠机制,闪电第一帧第一碰撞检测目标是米山,碰撞检测通过,进行后续各种结算最终对米山造成一次闪电伤害;第二帧第一碰撞检测目标依然是米山,但由于LC机制,碰撞取消,碰撞目标改为某召唤物a,碰撞检测通过,最终对a造成一次闪电伤害;第三帧第一碰撞检测目标仍然是米山(假设米山挺住了),由于该闪电的上一个碰撞目标是a,这一次闪电碰撞检测成功,最终对米山造成一次闪电伤害;第四帧第一碰撞检测目标依然是米山,但由于LC机制,碰撞取消,碰撞目标改为某召唤物a(如果挂了就换召唤物b),碰撞检测通过,进行后续结算最终对a造成一次闪电伤害。

size2闪电穿透size2目标用时4帧(角度影响也有3帧),所以在TP落地瞬间米山和召唤物a分别受到两次闪电伤害,nec确实没受到伤害。但可以想象如果没有召唤物只带米山,TP落地被电鬼齐射就会出现人物和米山瞬间受到两轮闪电伤害!由于电鬼的闪电还有5%几率触发ds双倍伤害,各种姿势秒躺也就不奇怪了。

所以这个bug被称为Sumbug还是挺准确的,利用Summon,人物TP落地不受投射物伤害(常规Missiles)

实测中有时TP落地人物pets会直接散开,这里教大家一个技巧:带着size3重生怪TP落地,只要别控制人物移动,所有pets会被锁在原地无法动弹(飞行召唤物能动)不过size3目标可能对投射物碰撞检测造成另外影响(如第一帧碰撞目标变成size3重生怪)

一些补充说明:

1.碰撞检测(通过)和造成伤害其实区别挺大,为了便于解释本文有些地方混为一谈;

2.文中提及的投射物指Missiles,投射物属性和碰撞机制其实还有很多,本文省略了不少关联不大的内容;

3.值得一提的有碰撞类型,比如上面提及的都是常规类型,还有几种碰撞类型的检测机制伤害机制可能有所不同:比如平置型投射物/从天而降型投射物/火墙型投射物等;

4.投射物和目标“触碰”后,一般在第二帧进行碰撞检测和伤害结算,同样为了便于解释本文将其称为第一帧。

===============================================





















已有 1 人评分符文收起理由
③岁就满帅 + 10感谢分享

总评分: 符文 + 10  查看全部评分

帖子:1262

符文:24

一直觉得飞弓不需要女武神,一般场景也不需要她去抗怪,多于点数加三闪挺好的。听楼主这么一说,好像女武神还挺有必要的,有她就不会sum bug了。是这个意思吧?楼主
发表于 2023-5-8 11:03:52|只看该作者 来自:天津

帖子:583

符文:15

dcmail 发表于 2023-5-8 11:03
一直觉得飞弓不需要女武神,一般场景也不需要她去抗怪,多于点数加三闪挺好的。听楼主这么一说,好像女武神 ...

sum bug算是增益bug,但PVC需要利用sum bug的时候很少,所以加点不用变动
发表于 2023-5-8 11:13:55|只看该作者 来自:江苏

帖子:3027

符文:9

非常细致的研究,赞一个
文章写得也很好读,科研老手了属于是
发表于 2023-5-8 11:27:09|只看该作者 来自:北京

帖子:583

符文:15

marcov 发表于 2023-5-8 11:27
非常细致的研究,赞一个
文章写得也很好读,科研老手了属于是

感谢支持!过奖了,参考论坛里很多大佬
发表于 2023-5-8 11:36:14|只看该作者 来自:江苏

帖子:140

符文:0

如果直闪会引发这个bug,那么带有穿刺效果的箭矢或投掷物是否也有这个效果?我指的不是炮轰,而是无nhd的那些技能,例如普攻和亚马逊的元素弓箭技能。我不确定箭矢的size是多少,当两个大体积怪物聚集时,弓马的普攻能否对两个怪物造成多次伤害?更进一步来说,冻结箭和爆裂箭能否触发多次爆炸?
发表于 2023-5-8 11:56:10|只看该作者 来自:江苏

帖子:583

符文:15

nafanoony 发表于 2023-5-8 11:56
如果直闪会引发这个bug,那么带有穿刺效果的箭矢或投掷物是否也有这个效果?我指的不是炮轰,而是无nhd的那 ...

之前查过多重箭和穿刺后的箭矢都是size1,所以应该不会造成多次伤害
发表于 2023-5-8 12:06:07|只看该作者 来自:江苏

帖子:3629

符文:697

本帖最后由 翀的肯定 于 2023-5-9 13:19 编辑

牛蛙,滋瓷!

帖子:4160

符文:751

这一看就是当年拍脑袋写代码,写完不做测试
发表于 2023-5-9 14:18:58来自凯恩之角App |只看该作者 来自:荷兰

帖子:583

符文:15


再次感谢大佬的多次帮助!
发表于 2023-5-9 19:25:02|只看该作者 来自:江苏

帖子:583

符文:15

小尼玛 发表于 2023-5-9 14:18
这一看就是当年拍脑袋写代码,写完不做测试

这种碰撞检测在当年或许是节省运算量的妥协,勉强能算是机制,但现在看真就是bug
发表于 2023-5-9 19:28:35|只看该作者 来自:江苏